part of '../page.dart';

class _UseCaseInputPresentationModel {
  const _UseCaseInputPresentationModel({
    required this.id,
    required this.globalKey,
    required this.markedToDelete,
    required this.appearanceAnimationController,
    required this.appearanceAnimation,
    required this.exampleShakeAnimationController,
    required this.translationShakeAnimationController,
    required this.exampleTextEditingController,
    required this.translationTextEditingController,
    required this.exampleTextFieldFocusNode,
    required this.translationTextFieldFocusNode,
  });

  final String id;
  final GlobalKey globalKey;
  final bool markedToDelete;

  final AnimationController appearanceAnimationController;
  final Animation<double> appearanceAnimation;

  final AnimationController exampleShakeAnimationController;
  final AnimationController translationShakeAnimationController;

  final TextEditingController exampleTextEditingController;
  final TextEditingController translationTextEditingController;

  final FocusNode exampleTextFieldFocusNode;
  final FocusNode translationTextFieldFocusNode;

  _UseCaseInputPresentationModel copyWith({
    String Function()? id,
    GlobalKey Function()? globalKey,
    bool Function()? markedToDelete,
    AnimationController Function()? appearanceAnimationController,
    Animation<double> Function()? appearanceAnimation,
    AnimationController Function()? exampleShakeAnimationController,
    AnimationController Function()? translationShakeAnimationController,
    TextEditingController Function()? exampleTextEditingController,
    TextEditingController Function()? translationTextEditingController,
    FocusNode Function()? exampleTextFieldFocusNode,
    FocusNode Function()? translationTextFieldFocusNode,
  }) {
    return _UseCaseInputPresentationModel(
      id: id == null ? this.id : id(),
      globalKey: globalKey == null ? this.globalKey : globalKey(),
      markedToDelete: markedToDelete == null ? this.markedToDelete : markedToDelete(),
      appearanceAnimationController: appearanceAnimationController == null
          ? this.appearanceAnimationController
          : appearanceAnimationController(),
      appearanceAnimation:
          appearanceAnimation == null ? this.appearanceAnimation : appearanceAnimation(),
      exampleShakeAnimationController: exampleShakeAnimationController == null
          ? this.exampleShakeAnimationController
          : exampleShakeAnimationController(),
      translationShakeAnimationController: translationShakeAnimationController == null
          ? this.translationShakeAnimationController
          : translationShakeAnimationController(),
      exampleTextEditingController: exampleTextEditingController == null
          ? this.exampleTextEditingController
          : exampleTextEditingController(),
      translationTextEditingController: translationTextEditingController == null
          ? this.translationTextEditingController
          : translationTextEditingController(),
      exampleTextFieldFocusNode: exampleTextFieldFocusNode == null
          ? this.exampleTextFieldFocusNode
          : exampleTextFieldFocusNode(),
      translationTextFieldFocusNode: translationTextFieldFocusNode == null
          ? this.translationTextFieldFocusNode
          : translationTextFieldFocusNode(),
    );
  }
}
